//package start.demo01.datatype.json.entity.builder;
//
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import start.demo01.datatype.json.entity.editor.jsonEditor.JSONCopyEditor;
//import start.demo01.datatype.json.interfaces.JSONBuilder;
//import start.demo01.datatype.json.interfaces.JSONEditor;
//import start.demo01.datatype.json.json.JSONPath;
//
//import static start.demo01.datatype.json.constant.Constant.*;
//
//
//public class JSONCopyBuilder extends JSONBuilder {
//
//    private JSONPath cpath;
//    private JSONPath dpath;
//
//    public JSONCopyBuilder(String cmd) {
//        super(cmd);
//    }
//    public void extension(JSONObject jsonObject){
////        this.jsonObject=jsonObject;
////        String[] split = cmd.split("\\s");
////        for (String str : split) {
////            if (str.startsWith(BUILD))
////                builde(jsonObject, str);
////            else {
////                int i = str.indexOf(TRANS);
////                cpath = JSONPath.builder(str.substring(0, i));
////                dpath = JSONPath.builder(str.substring(i + 1));
////            }
////        }
//    }
//
//    @Override
//    public void builde(JSONObject jsonObject) {
//        dpath.resolve(this.jsonObject);
//        JSONObject dobj = getDOBJ();
//        JSONEditor last = cpath.getEditors().getLast();
//        if (last instanceof JSONCopyEditor) {
//            ((JSONCopyEditor) last).setJsonObject(dobj);
//        }
//        cpath.resolve(jsonObject);
//    }
//
//    private JSONObject getDOBJ() {
//        JSONPath.Node node = dpath.getNodes().getLast();
//        switch (node.getType()) {
//            case NODE_TYPE1_1://对象入口
//                JSONObject obj = (JSONObject) dpath.getCurrent();
//                return obj.getJSONObject(node.getKey());
//            case NODE_TYPE2_1://索引入口
//                JSONArray array = (JSONArray) dpath.getCurrent();
//                return array.getJSONObject(Integer.parseInt(node.getKey()));
//        }
//        return null;
//    }
//}
